package com.domus.dreamMenu.cliente.gui.paineis;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.LayoutManager;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.Border;

import com.sun.java.swing.plaf.motif.MotifBorders.BevelBorder;

public class PainelMenu extends JPanel {

	public PainelMenu(String[] tipos, ActionListener ouvinte) {
		JPanel p = new JPanel();
		p.setLayout(new BoxLayout(p,BoxLayout.LINE_AXIS));
		
		JButton botao;
		
		for(String tipo : tipos){
			botao = new JButton(tipo);
			botao.setActionCommand(tipo);
			botao.addActionListener(ouvinte);
			p.add(botao);
			p.add(Box.createRigidArea(new Dimension(10,0)));
		}
		this.add(p);
	}
	
	public PainelMenu(String[] tipos, ActionListener[] ouvintes) {
		//configurando o layout
		this.setLayout(new BoxLayout(this,BoxLayout.LINE_AXIS));
		
		JButton botao;
		
		int qtdBotoes = tipos.length;
		for(int i = 0; i < qtdBotoes; i++){
			botao = new JButton(tipos[i]);
			botao.addActionListener(ouvintes[i]);
			this.add(botao);
			this.add(Box.createRigidArea(new Dimension(10,0)));
		}
	}
	
	public static void main(String[] args) {
		//criando o ouvinte dos botoes
		final ActionListener ouvinte = new ActionListener(){
				public void actionPerformed(ActionEvent evento) {
					final JButton botao = (JButton) evento.getSource();
					String textoBotao =  botao.getText();
					System.out.println("foi clicado o botao com o texto: " + textoBotao);
				}
			};
		//definindo os nomes dos botoes
		final String[] nomesBotoes = new String[]{
				"botao1",
				"botao2",
				"botao que não segue a sequencia",
				"ao contrário deste botao, o próximo tem um texto pequeno",
				"B4"
		};
			
		//criando a janela
		JFrame f = new JFrame("teste painel tipos");
		f.setLayout(new FlowLayout());
		//definindo que a janela funciona em tela cheia
		f.setSize(Toolkit.getDefaultToolkit().getScreenSize());
		//criando um painel em que o PainelTipos será inserido
		JPanel p = new JPanel();
		p.setBorder(BorderFactory.createLineBorder(Color.BLACK));
		//criando o painel tipos
		PainelMenu painelTipos = new PainelMenu(nomesBotoes, ouvinte);
		//adicionando um novo PainelTipos
		p.add(painelTipos);
		//adicionando o painel
		f.getContentPane().add(p);
		//fazendo que quando a janela for fechada, o programa seja encerado
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		//exibindo a janela
		f.setVisible(true);
	}
}
